*. Sticky notes


The game uses simple LZ for bitmap packing - title screen, sprite text (game options).

Bitmap decoder handles the system ones as a seperate list.
69b00 binary/system1.bin
6c400 binary/menus1.bin
7a300 binary/title.bin
64000 binary/game1.bin
69300 binary/game2.bin
28b00 binary/scores.bin

That's probably incomplete but much of the data.

Quirk is that _very often_ the 32-bit pointers are stored in wicked multi-nested structures.
Sometimes there are multiple copies to update.

A reasonable solution would be to insert a custom code trap @ 00:0C82. Which checks for the
source address and replaces with the 'English' ones on-the-fly. That's for dual-language support.


The game over text / high scores are not sprites but BG1 painted text. So that's easy to fix.
Tutorial mode (game 1) is sprite text. Not sure if it's located yet.

; ----------------------------------------------------------------------------

There are two scripting languages.

The system text (endings / demo) uses a direct 32-bit table lookup.
Very plain language.

NT cursor codes / delay amounts.


Stage dialogue also uses another 32-bit direct table.

Box dimensions / NT cursor / delays / lines.


Problem is that --every-- text string uses its own local font table that gets dumped to VRAM.
Stage1 / stage2 / .. / stage16 / demo / ending.

So you've got some kanji to fill in.

; ----------------------------------------------------------------------------

The inserter table won't work per-se. It's expected that you use some 'master'
tables that use ROM lookup and copies tiles to VRAM. Easier to work with.

On the other hand, you could copy an 8x16 English alphabet instead.

The main problem is that the 32-bit font table pointers are hard to find, and they
become scattered in hard-to-remap arrays. If all bitmaps re-compress in-place, then
problems avoided.


Other sad point is that the bitmaps are stored in all sorts of different palettes.
And the tiles get thrown to VRAM in many different locations.

; ----------------------------------------------------------------------------

The cheat file will do a 'super combo hit' in 1P story mode.
Makes the game much easier for testing.

Enough work overall - VWF or not.

; ============================================================================
; ############################################################################
; ============================================================================

Atlas 1.06 is modified (nothing new since 'Super Robot Wars EX')

> #FILL( int stop_address, int file_byte )		- pads up to stop address
  #FILL( int start, stop, int file_byte )		- pads address range
  #FILL( int start, stop, int file_byte, string file )	- pads address range IN FILE

  #WARN( int warn_address )				- OKAY/BARF if PC counter >= warn_address

  #SAVEPC( string file_name )				- writes PC to file
  #LOADPC( string file_name )				- loads PC from file

  #INSERT( string file_name )				- inserts binary file at current PC

  MSB16,MSB24,MSB32,GB4xxx				- addressing modes

  #SETINDEX( int index_number, int size )		- init the index numbers
  #WRITEINDEX( int address, int index_bump )		- writes index numbers to address, # bytes
							  and auto-bumps the index #
  #WRITEINDEX( int addr, int index_bump, string file )	- writes index number to address IN FILE

  #SAVEINDEX( string file_name )			- writes INDEX # to file
  #LOADINDEX( string file_name )			- loads INDEX # from file

  #ALIGN( int byte_count )                      	- does file alignment (1,2,3,4)

  #W08BYTE( int address, int byte )			- writes byte to address (no JMP)
  #W08BYTE( int addr, int byte, string file )		- writes byte to address IN FILE (no JMP)

  #EMBCLEAR()						- erases all embedded pointers

  #SAVEPTRTABLE( PTRTABLE table, string file_name )	- writes PTRTABLE address to file
  #LOADPTRTABLE( PTRTABLE table, string file_name )	- loads PTRTABLE address from file 

  #WRITEOFS( PTRTABLE table, int offset )		- writes POINTER at an offset amount (from the table start)
